In the data processing art, there has been a general trend to specialize and distribute data processing tasks among an increasing number data processors. For example, more than a decade ago, it was common for a mainframe computer to be programmed with a file system manager and various application programs that invoked the file system manger in order to access files of the file systems. In turn, the mainframe computer sent logical block access commands to another mainframe processor of a cached disk array.
More recently, it has been common for application programs to be executed by workstations such as personal computers networked to file servers. Each file server is programmed with a file system manager. Each file server may include a volume manager for access to storage of disk drives in the file server. However, file servers have been networked or clustered in various ways to enable share access to storage subsystems or arrays of disk drives by multiple workstations.
Data consistency problems may arise if two file servers share access to the same file system in storage. As described in Xu et al. U.S. Pat. No. 6,324,581, one way to solve this data consistency problem is to designate one of the file servers to be an exclusive owner of access rights to each file system. The exclusive owner of the access rights to a file system, however, may delegate data access or metadata management tasks to other file servers. For example, if a first file server receives a request from a network client for access to a file system owned by a second file server, then the first file server sends a metadata request to the second file server. The second file server responds by placing a lock on the file and returning metadata of the file. The first file server uses the metadata of the file to formulate a data access command that is used to access the file data in the file system directly to the disk array over a bypass data path that bypasses the second file server.
As further described in Jiang et al. U.S. Patent Application Publication 2005/0240628 published Oct. 27, 2005, metadata management in a file server or storage network is delegated from a primary data processor to a secondary data processor in order to reduce data traffic between the primary data processor and the secondary data processor. The primary data processor retains responsibility for managing locks upon objects in the file system that it owns, and also retains responsibility for allocation of free blocks and inodes of the file system. The leasing of free blocks and inodes to the secondary and the granting of locks to the secondary enables the secondary to perform other metadata management tasks such as appending blocks to a file, truncating a file, creating a file, and deleting a file.